/**
 * 模板设计
 * 
 */


// 是否可以多个值
export type PortalBaseSchemaType = 'sinple' | 'mutial'
export type PortalBaseSchemaRenderType = 'icon' | 'normal' | 'list'

// 对于基础套件 多应该有对应的 方案控制台
export interface PortalBaseSchema {
  type: PortalBaseSchemaType
  name: string
  render?: PortalBaseSchemaRenderType
  properties: PortalProperty[]
}

/**
 * 属性定义
 */
export enum PortalPropertyType {
  Text = 'text',
  Date = 'date',
  Boolean = 'boolean',
  DateRange = 'dateRange',
  ShopRefer = 'shopRefer',
  NoticeRefer = 'noticeRefer',
  Enum = 'enum',
  File = 'file',
  Link = 'link'
}

/**
 * 属性定义
 */
export interface PortalProperty {
  type: PortalPropertyType
  title: string
  name: string
}

/**
 * 套件定义
 */
export interface PortalBaseDefination {
  id: number

  /**
   * 套件的约束 
   * 如比 banner 套件 
   * 他应该有 
   * 多个属性的组合 
   * 1. 文件 2. 链接 
   */
  schema: PortalBaseSchema
  /**
   * 标题
   */
  title: string
  desc: string
  screenshot: string
  thumbnail: string
}

/**
 * 可编辑页面
 */
export interface EditablePage {

  id: number

  /**
   * 多个套件
   * 一个页面应该都多个套件
   */
  portals: PortalBaseDefination[]

  /**
   * 标题 
   * 首页
   */
  title: string
  /**
   * 截图
   */
  screenshot?: string
  /**
   * 缩略图
   */
  thumbnail: string

}


/**
 * 模板定义
 */
export interface TemplateDefination {
  id: string
  /**
   * 标题
   * eg 小虾米
   */
  title: string
  /**
   * 介绍
   */
  desc: string
  /**
   * 缩略图
   */
  thumbnail: string
  /**
   * 页面集合
   */
  pages: EditablePage[]
}

/**
 * 我预置一个模板
 * 格式如下
 * {
 *    
 *    title: '小虾米',
 *    pages: [
 *        {
 *           title: '首页',
 *           portals: [
 *                 {
 *                     type: 'banner',
 *                     title: '首页幻灯片'
 *                 }
 *            ]
 *        }
 *   
 *    ]
 * }
 */